Each user of a computer system has specific requirements for his system. Each user wants his system to be perfectly tailored to his present and future needs, at the lowest possible cost. One user may want a low cost entry system that is expandable when his needs change. Another user may want a higher cost advanced level computer system. The problem computer designers face is in designing a system that is flexible enough to satisfy both an entry level user and an advanced level user at the lowest possible cost to both users.
The most common approach computer designers have taken to solve the above problem is to have a backplane with several expansion slots. An advanced level system would have several expansion boards plugged into these expansion slots. An entry level system would have no or just a few boards plugged into these expansion slots. As the entry level system user's needs changed, he could plug in additional expansion boards into the expansion slots.
Although the above approach provides a system flexible enough to satisfy both an entry level and advanced level user, it does not do so at the lowest possible cost to both users. The entry level user is paying for a backplane with several expansion slots that he may never use. Unused expansion slots are inefficient and are a waste of cost and space.